﻿using LxBasic;

namespace LxCore
{
    public interface IJsonWriter
    {
        void WriteBool(string key, bool value);
        void WriteInt(string key, int value);
        void WriteDouble(string key, double value);
        void WriteString(string key, string value);
        void WriteEnum<TEnum>(string key, TEnum value) where TEnum : struct;
        void WriteObject(string key, JsObject jsonObject, bool withType = false);
        void WriteList<T>(string key, JsList<T> jsonObject) where T : JsObject;
        void WriteDirect(string key, string value);
        //void WriteVector2d(string key, Vector2d value);
        void WriteVector2dArray(string key, Vector2d[] value);
        void WriteVector3d(string key, Vector3d value);
        void WriteVector3dArray(string key, Vector3d[] value);
        //void WriteIntArray(string key,int[] value);
        void WriteDoubleArray(string key, double[] value);
        void WriteInnFaceArray(string key, FvInnFace[] value);
        void WriteBouFaceArray(string key, FvBouFace[] value);
        void WriteIndexRange(string key, IndexRange value);
        void WriteMonitorSelector(string key, int id);
        void WriteGraphSelector(string key, int id);
    }
}
